#pragma once
#include "GeometricObject.h"
#include "Plane.h"


class AFX_CLASS_EXPORT CCamera: public CGeometricObject
{
public:
	CCamera(void);
	CCamera(const double* const pCamMatrix);
	~CCamera(void);
	//
	void loadIdentity();
	void loadCurrentCam();
	const double* const getModelViewMatrix();
	const double* const getProjectionMatrix();
	const int* const getViewport();

	CPlane			getViewingPlane();
	CPoint3D		getPosition();
	CVector3D		getVPNVector();
	CVector3D		getRightVector();
	CVector3D		getUpVector();


private:
	double	m_modelViewMatrix[16];
	double	m_projectionMatrix[16];
	int		m_viewport[4];
};
